Android Drawable.createFromStream 分配了太多内存
全部标签 我的应用程序创建了一个非常大的xml文件(大约30万个事务)。每个事务将有大约20个xml元素。所以它创建了一个巨大的xml文件。我们没有使用JAXB或SAX或DOM来创建xml文件,因为内存是约束。现在我需要在创建xml文件后替换某些标记值。我知道要替换什么以及要替换的值。如何在不将整个文件加载到内存的情况下替换这些变量?对于30万笔交易,文件大小约为600MB。所以我们不想为了替换少数变量而将整个文件加载到内存中。我们正在使用Java5。我们有办法做到吗? 最佳答案 你可以试试VTD-XML:内存高效(XML文档大小的1.3到1
我编写了一个程序来验证文件夹中存在的所有xml并报告失败的。我在我的程序中使用了javaXMLvalidator实用程序。SchemaFactoryfactory=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);Schemaschema=factory.newSchema(newFile("xsdPath"));我有一个循环验证的xml文件列表for(inti=0;i然后我有一个验证XML的函数publicstaticStringvalidateXML(StringxmlPath){try{validator=
我必须读取大型xml文件的根节点的所有第一级节点,如下所示:我的代码如下:varxml=XDocument.Load(filename);varfirstNode=xml?.Root?.Descendants()?.FirstOrDefault();varelements=firstNode?.Elements();我只需要获取根的第一个子节点及其所有一级后代。这段代码工作正常,但问题是:这样读安全吗?我猜它不会将所有数据加载到内存中-只有xml文件的结构?如我所见,调试时内存没有增加。只有当我真正尝试查看xml变量中的内容时,它才会爆炸。 最佳答案
例如,如果您加载一个xml并出于任何原因使用它:XDocumentdoc=XDocument.Load("my.xml");现在您已经使用完它并想释放它使用的任何内存,最初我认为将它设置为null可以完成这项工作,但事实并非如此,那么释放已用内存的正确方法是什么?可能吗? 最佳答案 您正在做正确的事情。让GC担心它何时收集,因为它会在有压力时收集。 关于c#-从加载的xml中释放内存?,我们在StackOverflow上找到一个类似的问题: https://s
我有一个包含大约4500个XML(HTML5)文件的目录,我想为它们的数据创建一个“list”(本质上是title和base/@href).为此,我一直在使用一个函数来收集所有相关文件路径,用readFile打开它们,将它们发送到基于tagsoup的解析器,然后输出/格式化结果列表。这适用于文件的子集,但最终会遇到openFile:resourceexhausted(Toomanyopenfiles)错误。阅读一些内容后,这并不奇怪:我正在使用mapMparseMetaDataFile文件,它会立即打开所有句柄。我想不通的是如何解决这个问题。我试过阅读一些关于Iteratee的文章;我
我有一个名为a的boolean字段和两个方法voidsetA(Stringa)和booleanisA()。我已经设置了@XmlAccessorType(XmlAccessType.NONE)并使用了@XmlAttribute作为setter。因为getter返回一个boolean值,但setter需要一个字符串JAX-B只是忽略了这个setter。这是代码中各种错误的原因,因为boolean值设置不正确,调试非常烦人。有没有办法告诉JAX-B使用setter?为什么JAX-B完全被getter方法搞糊涂了,我虽然使用XmlAccessType.NONE阻止了所有隐式解释?如果出现这样的
假设您执行以下操作:dom=ElementTree()dom.parse(some_file_path)我想记录这个dom现在在我的进程中使用的粗略内存量。我不需要精确的东西,粗略的东西就可以了。我认为我无法从源XML文件的大小中得出它。我有一个500KB的文件,如上例所示,它在加载python进程后似乎增加了大约5MB的内存使用量。我查看了ElementTreeAPI,没有看到任何提供此信息的API。有人知道在解析/加载XML文件后了解ElementTree实例使用了多少内存的方法吗? 最佳答案 本质上,您想要查找特定python
添加后170,000至string.xml.它在构建工作区时变得如此缓慢,我增加了我的堆空间和jvm内存,但仍然很慢我不得不在每次编辑后等待4小时以在我考虑运行程序之前保存在eclipse上。有什么解决办法吗?(我在ubuntu11.10上使用gnome3.0)。 最佳答案 与其将字符串放在string.xml中,不如尝试将文件放在/res/raw中,当应用程序首次启动时,您将其插入数据库? 关于java-包含太多项目的String.xml速度太慢,我们在StackOverflow上找到
我是Android编程的新手,几天来我一直在寻找我的问题的答案,但没有成功。我正在尝试为我的单选按钮分配一个值110,我想稍后再接收它。谁能告诉我如何在xml和java文件中实现这一点?这是我的单选按钮。标准。 最佳答案 您可以使用View的tag属性来存储和检索其他数据。在XML中设置标签:android:tag="@string/some_value"在Java中获取标签:myView.getTag().toString()在Java中设置标签:myView.setTag("someValue");或者如果该值与单选按钮的标题相
我需要使用SSIS将一个大型(40GB+)XML文件加载到SQLServer2012数据库表中。我遇到问题是因为SSIS似乎试图将整个文档加载到内存中而不是流式传输它。这是我的SSIS包的更多详细信息。我创建了一个具有以下属性的XML源:数据访问模式:来自变量的XML文件(但可以是XML文件位置)变量名:指定我电脑中XML文件路径的变量。XSD位置:定义正在读取的XML的XSD的路径。XML结构简单,只有3个层级:带有标题信息的根元素一级定义对象集合定义单个对象的叶级别(每个对象都有一组固定的字段)我需要为每个叶元素插入一个数据库记录,从更高层次重复字段。换句话说,我需要展平XML层次